package br.ufrn.sigtcc.model.entidades;

import static javax.persistence.EnumType.STRING;
import static javax.persistence.TemporalType.DATE;
import static javax.persistence.TemporalType.TIMESTAMP;

import java.util.Calendar;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Enumerated;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;

import br.ufrn.sigtcc.model.utils.status.ESatusTCC;

@Entity
@Table(name="TCC")
public class TCC extends PropostaTCC{
	
	public TCC() {
		// TODO Auto-generated constructor stub
	}
	
	
	@Temporal(DATE)
	private Calendar dataCadastro;
	@Temporal(TIMESTAMP)
	private Calendar dataHoraDefesa;
	@Temporal(DATE)
	private Calendar dataValidacao;
	@Column(columnDefinition="text", nullable = false)
	private String localDefesa;	
	@OneToOne
	@JoinColumn(name="prof_fk")
	private Professor professorOrientador;
	@OneToMany
	@JoinColumn(name="alunos_fk")
	private List<Aluno> alunos;
	@Enumerated(STRING)
	@Column(nullable = false, length = 10)
	private ESatusTCC statusTCC;
	@OneToMany
	@JoinColumn(name="tcc_fk")
	private List<Atividade> atividades;

	public Calendar getDataCadastro() {
		return dataCadastro;
	}
	public void setDataCadastro(Calendar dataCadastro) {
		this.dataCadastro = dataCadastro;
	}
	public Calendar getDataHoraDefesa() {
		return dataHoraDefesa;
	}
	public void setDataHoraDefesa(Calendar dataHoraDefesa) {
		this.dataHoraDefesa = dataHoraDefesa;
	}
	public Calendar getDataValidacao() {
		return dataValidacao;
	}
	public void setDataValidacao(Calendar dataValidacao) {
		this.dataValidacao = dataValidacao;
	}
	public String getLocalDefesa() {
		return localDefesa;
	}
	public void setLocalDefesa(String localDefesa) {
		this.localDefesa = localDefesa;
	}
	public Professor getProfessorOrientador() {
		return professorOrientador;
	}
	public void setProfessorOrientador(Professor professorOrientador) {
		this.professorOrientador = professorOrientador;
	}
	public List<Aluno> getAlunos() {
		return alunos;
	}
	public void setAlunos(List<Aluno> alunos) {
		this.alunos = alunos;
	}
	public ESatusTCC getStatusTCC() {
		return statusTCC;
	}
	public void setStatusTCC(ESatusTCC statusTCC) {
		this.statusTCC = statusTCC;
	}
	public List<Atividade> getAtividades() {
		return atividades;
	}
	public void setAtividades(List<Atividade> atividades) {
		this.atividades = atividades;
	}
	
	
	
}
